package com.zzh.partnersys.ai.entity.dto;

import com.zzh.partnersys.ai.entity.enums.DocumentParseTaskStatus;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 文档解析任务状态DTO
 *
 * @author zzh
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DocumentParseTaskStatusDTO implements Serializable {
    
    private static final long serialVersionUID = 1L;

    /**
     * 任务ID（UUID）
     */
    private String taskId;

    /**
     * 任务状态
     */
    private DocumentParseTaskStatus status;

    /**
     * 状态消息
     */
    private String message;

    /**
     * 总文档数
     */
    private Integer totalCount;

    /**
     * 当前处理的文档索引（从1开始）
     */
    private Integer currentIndex;

    /**
     * 当前处理的文档名称
     */
    private String currentDocName;

    /**
     * 总体进度（0-100）
     */
    private Integer progress;

    /**
     * 已完成的文档列表
     */
    private List<String> completedDocs;

    /**
     * 失败的文档列表（包含失败原因）
     */
    private List<FailedDoc> failedDocs;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 完成时间
     */
    private LocalDateTime completeTime;

    /**
     * 失败文档信息
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class FailedDoc implements Serializable {
        private static final long serialVersionUID = 1L;
        private String docName;
        private String errorMessage;
    }
}

